This file contain style information; for optimal viewing, use SimpleText rather than TeachText.
Charon 0.9.9b8
Changes since 0.9.9b7
This document describes changes in Charon since the previous beta release, which was version 0.9.9b7.
1. More Robust Configs
If you use System 7 or later, Charon will now store the paths for the inbound and outbound folders, as well as for Obolus and ZipIt, in alias records. This means for instance, that Charon will be able to find the folders and programs, even if you mount your disks in a different order from the one when you first saved the config.
If you want to "upgrade" your old configs to use this new method, simply use the "Edit Boss Config" option, and save the config file anew. The old-style information will also be saved, so this method is fully backwards compatible. You can use a "new style" config on a System 6 machine; Charon will get its info the old, less reliable way.
Technical info: To store the alias records, Charon now adds a resource fork to the config file. Currently, there are four possible 'alis' resources in there, with the following IDs:
#define rInboundAlias 1000
#define rOutboundAlias 1001
#define rObolusAlias 1002
#define rDecompressAlias 1003
If you wish to access these aliases directly from another program, open the config file with FSpOpenResFile (or use an older variant), then use GetResource and ResolveAlias to get an FSSpec for the file or folder. The first two (rInboundAlias and rOutboundAlias) are always present, and are aliases to folders. If you resolve these aliases, the FSSpec's parID field will not contain the dirID of the folder you want. Rather, it will contain the dirID of the folder the wanted folder is in. To get the real DirID you want, use something like this:
if (ResolveAlias(NIL, myAlias, &foundFSS, &wasChanged) != noErr)
f2 and foundFSS are FSSpecs. You make FSMakeFSSpec look for a file inside the folder whose dirID you want. It will return an fnfErr, but that shouldn't bother you.
rObolusAlias and rDecompressAlias are only present if the user chose those options.
2. Rudimentary AppleScript support
Charon now includes rudimentary AppleScript support. Aside from the required events, Charon has one event of its own, "Dial" (see the 'aete' resource for more info). This has the same effect as pressing the Dial button in Charon. If Charon has previously received an 'odoc' event for a config file, it will start to dial that config, rather than put up a dialog for the user to select a config file. So you could script Charon something like:
tell application "Charon"
open "whatever"
dial
open "another config"
dial
quit
end tell
Charon is also recordable, in a limited way.
I will add some better scripting support in the future. First, I'll have to get better at using AppleScript myself.
3. Timeouts on dialogboxes
The error, warning and message dialog boxes (which during normal, error-free operation you should not see) now time out after 20 seconds. The time out has the same effect as clicking in the default button. I added this feature so that if an error occurs in Unattended mode, Charon can continue (at least, it can try) and quit. Note that the time out is always active, even if you started Charon with Unattended mode off. (Does this make sense? Too confusing? I can turn it off for normal operation).
4. Easier selecting of folders
If you use System 7 or later, Charon now has better dialogs for selecting folders (inbound and outbound). For System 6 users, nothing has changed.
5. Timestamping in the serialLog
Charon now records the time and date in the serialLog. A major overhaul of the logging is probably overdue. The serialLog is something of a mess, but it's great for debugging dodgy connects.
6. Bugfixes
Some more bugs have been fixed, notably the "SendAEToSelf" error when quitting in the b7 version without AppleScript installed. Others:
• The "Point Config" dialog now updates properly.
• Charon now displays the correct version number, and also transmits the correct version number in EMSI sessions.
And finally... please send your comments, suggestions and bug reports to me at qsi@cnh.wlink.nl.